package cn.kpi.dao.workassessment;

import cn.kpi.common.persistence.MyBatisDao;
import cn.kpi.entity.workassessment.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@MyBatisDao
public interface WorkAssTemplateDao {

    public List<WorkAssTemplateIndexEntity> GetTemplateIndexListRowSpan() throws Exception;

    public List<WorkAssTemplateEntity> GetWorkAssTemplateListByWhere(@Param("where") String where) throws Exception;

    public int UpdateStatus(@Param("templateid") Long templateid);

    public int GetWorkAssTemplateListCountByWhere(@Param("where") String where) throws Exception;

    public List<WorkAssTemplateIndexEntity> GetTemplateIndexListByWhere(@Param("where") String where) throws Exception;

    public WorkAssTemplateIndexEntity GetIndexById(@Param("assindexid") Long assindexid) throws Exception;

    public List<WorkAssTempCreateIndexEntity> GetIndexListByWhere(@Param("where") String where) throws Exception;

    public List<WorkAssTempCreateIndexEntity> GetTemplateIndexBytemplateid(@Param("templateid") Long templateid) throws Exception;

    public int UpdateIndex(WorkAssTemplateIndexEntity entity) throws Exception;

    public int InsertTemplateIndexentity(WorkAssTemplateIndexEntity entity) throws Exception;

    public int UpdateParentscore(@Param("assindexid") Long assindexid, @Param("score") int score) throws Exception;

    public int DeleteIndex(@Param("assindexid") Long assindexid, @Param("parentid") Long parentid) throws Exception;

    public int DeleteWorkTempEntity(Long templateid) throws Exception;

    public int DeleteWorkTempCreateIndexEntity(Long templateid) throws Exception;

    public List<WorkAssTemplateIndexEntity> GetTemplateIndexListRowSpanByTempId(@Param("templateid") Long templateid) throws Exception;

    public WorkAssTemplateEntity GetWorkAssTemplateListById(Long templateid) throws Exception;

    public int InsertTemplateEntity(WorkAssTemplateEntity entity) throws Exception;

    public int InsertTempCreateIndexBatch(List<WorkAssTempCreateIndexEntity> list) throws Exception;

    public int UpdateWorkAssTempEntity(WorkAssTemplateEntity entity) throws Exception;

    public int InsertWorkTempOrgBatch(@Param("templateid") Long templateid, @Param("list") List<Long> list) throws Exception;

    public int DeleteWorkTempOrgBatch(@Param("templateid") Long templateid) throws Exception;

    public List<WorkAssTemplateOrgEntity> GetTempOrgListByTempId(@Param("templateid") Long templateid);

    public List<WorkAssTemplateOrgEntity> GetChooseOrgListByTempId(@Param("templateid") Long templateid);

    public List<Map> getSumScore(@Param("templateid") Long templateid);

    public List<WorkAssGroupOrgEntity> GetGroupOrgListByTempId(@Param("templateid") Long templateid);

    public int updateTitleName(@Param("templateid") Long templateid, @Param("titleName") String titleName);


}
